package br.edu.universo.si.projeto2.infojob.server.persistencia;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;

import br.edu.universo.si.projeto2.infojob.client.bean.BeanEstado;
import br.edu.universo.si.projeto2.infojob.server.Database;

/**
 * Classe de persistência de Estado.
 * @author Andrey A. de Oliveira
 */
public class PEstado
{

	/**
	 * Busca todos os Estados cadastrados.
	 * @author Andrey A. de Oliveira
	 * @return HashMap<Integer, String>
	 * @throws ClassNotFoundException
	 * @throws Exception
	 */
	public static HashMap<Integer, String> getEstados()
		throws ClassNotFoundException, Exception
	{
		HashMap<Integer, String> estados = new HashMap<Integer, String>();
		
		Database database = Database.getInstance();
		Statement stmt = database.getStatement();
		
		String query = "SELECT * FROM infojob.tb_estado; ";
		
		ResultSet rs = stmt.executeQuery(query);
		
		while (rs.next())
		{
			int id = rs.getInt("id");
			String estado = rs.getString("estado");
			
			estados.put(id, estado);
		}

		return estados;
	}

	/**
	 * Busca um Estado pela sua ID.
	 * @author Andrey A. de Oliveira
	 * @param idEstado
	 * @return BeanEstado
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	public static BeanEstado getEstadoById(Integer idEstado) throws ClassNotFoundException, SQLException
	{
		Database database = Database.getInstance();

		PreparedStatement pStmt = database.getPreparedStatement("SELECT * FROM infojob.tb_estado WHERE id = ?; ");
		pStmt.setInt(1, idEstado);

		ResultSet rs = pStmt.executeQuery();

		if (rs.next())
		{
			BeanEstado bEstado = new BeanEstado();
			
			bEstado.setId(rs.getInt("id"));
			bEstado.setEstado(rs.getString("estado"));
			
			return bEstado;
		}

		return null;
	}
}